All rights reversed

IP Routing

Vortrag: Felix von Leitner <fefe@ccc.de>

Bericht: ISCS <iscs@ailis.com>

Der Vortrag von Felix, genannt Fefe, zum Thema "IP-Routing" fand von 13 Uhr bis 15 Uhr im Workshopraum 1 statt. Der v÷llig ⁿberfⁿllte Saal musste zu Anfang von allen Tischen befreit werden, um Platz fⁿr die gro▀en Menschenmassen zu schaffen, die sich nunmehr mit StehplΣtzen zufrieden geben mussten.

Die Grundlage, um Routing zu verstehen, ist das VerstΣndnis des IP-Protokolls, das zuvor von Pirx in seinen Vortrag "IP fⁿr AnfΣnger" trefflich vermittelt wurde. Routing beginnt bei jedem zu Hause im eigenen Ethernetz. Mit dem ARP-Protokoll werden IP-Pakete innerhalb des eigenen Netzes zugestellt.

Ein Beispiel: Rechner 1 m÷chte ein Paket an Rechner 2 (mit der IP 1.2.3.4) senden. Rechner 1 und 2 haben jeweils eine Netzkarte mit einer fest vom Hersteller eingebauten weltweit eindeutigen Ethernet-Adresse (MAC-Adresse). Die IP-Adresse (die nicht fest in die Karte eingebaut ist, sondern selber in die Software eingetragen werden mu▀) ist noch nicht mit der MAC-Adresse der Karte verknⁿpft.

Hierzu dient das ARP-Protokoll. Rechner 1 (der Sender) sendet einfach eine Nachricht an alle Rechner innerhalb des eigenen Netzes (eine Broadcast-Nachricht): "Wer hat eigentlich die IP 1.2.3.4?" Alle Rechner empfangen diese Nachricht, doch die meisten ignorieren sie. Nur der Rechner 2 mit der IP 1.2.3.4 (denn der kennt am Besten seine eigene IP) antwortet dem Rechner 1 (diesmal auf direktem Wege, die MAC des Rechners Nummer 1 entnimmt Rechner 2 der Absender-Adresse der Broadcastnachricht) und antwortet "Ich habe die IP 1.2.3.4". Fⁿr zukⁿnftige Anfragen merkt sich Rechner 1 nun in seinen ARP-Cache die MAC-Adresse des Rechners mit der IP 1.2.3.4.

Hier ergeben sich Angriffsm÷glichkeiten, wenn ein Hacker-Rechner solche ARP-Pakete fΣlscht und sich so fⁿr jemand anderen ausgibt. Folgende Pakete, die eigentlich fⁿr einen anderen Rechner bestimmt waren, werden nun brav an den Hacker zugestellt.

Das eigentliche IP-Routing behandelt nun die Frage: "Woher wei▀ ein IP-Paket, wo es im Internet auf dem Weg zu seinen Ziel hingehen mu▀?" Dies ist kein Problem in meinem eigenen Privatnetz. Hier hΣngen alle Rechner an einem einzigen Kabel, und man muss nur via ARP-Request fragen, wer das Paket haben will. Soll ein Paket nach drau▀en zugestellt werden (zum Beispiel durch einen Router, der mit einer Standleitung zum Internet verbunden ist), so muss der Rechner wissen, dass jedes Paket, was nicht innerhalb des eigenen Netzes zugestellt werden kann, durch diesen Router weitergeleitet werden muss. Dazu trΣgt man einfach in der Konfiguration des Clients die IP-Adresse des Standard-Gateways des Routers mit Verbindung zum Internet ein. Der Client verlΣsst sich einfach darauf, dass dieser Router schon wissen wird, wohin er das Paket weiter zustellen soll.

Woher wei▀ der Client aber, welche Zieladresse eines Pakets innerhalb des eigenen Netzes liegt oder nicht? Die Netmask gibt an, wie gro▀ das eigene Netz ist. Eine Netmask von 255.255.255.0 sagt aus, dass das eigene Netz daran zu erkennen ist, dass alle Rechner innerhalb des Netzes drei identische erste Stellen in ihrer IP besitzen, z.B. ein Netz von 5.6.7.0 bis 5.6.7.255.

Bei einem bitweisen Vergleich zwischen der eigenen Adresse und der Zieladresse mit Hilfe der Subnetmask kann auf diese Weise herausgefunden werden, ob das Ziel innerhalb des eigenen Netzes liegt. Jedes Bit innerhalb der Subnetmask, das auf Eins gesetzt ist, kennzeichnet, dass hier innerhalb der IP die Netzadresse steht. Sind sie bei Absender- und Zieladresse gleich, so liegt das Ziel im eignen Netz. Andernfalls wandert das Paket zum Standard-Gateway.

Die Netze wurden in verschiedene Klassen unterteilt: Klasse A: 0-127.x.x.x (Netmask: 255.0.0.0) Klasse B: 128-191.x.x.x (Netmask: 255.255.0.0) Klasse C: 192-223.x.x.x (Netmask: 255.255.255.0)

Klasse D und E sind Sondernetze (Multicast-Netze und reservierte Adressen fⁿr zukⁿnftige Anwendungen). Was aber nun, wenn ein Router mehrere AusgΣnge hat? Er ben÷tigt eine Routing-Tabelle. In ihr ist festgehalten, welches Netz (gekennzeichnet durch die IP-Adresse des Netzes und die Netmask) durch welches Netzinterface zu erreichen ist und an welches Gateway es weitergeleitet werden muss.

Wie werden diese Routing-Tabellen aufgebaut? Dies kann entweder manuell geschehen, indem der Administrator des Routers diese Tabellen selbst eintrΣgt (statisches Routing), oder durch dynamisches Routing, bei dem ein Protokoll diese Aufgabe ⁿbernimmt.

Routen k÷nnen auf diese Weise symmetrisch oder asymmetrisch festgelegt werden. Der Weg, den ein Paket in eine Richtung nimmt, ist entweder mit dem Rⁿckweg identisch bzw. beim asymmetrischen Routing von diesem verschieden. Asymmetrische Konfigurationen k÷nnen zum Beispiel dazu missbraucht werden, Pakete ⁿber einen Spionage-Rechner umzuleiten, damit dieser sich alle Pakete ansehen kann.

Beim dynamischen Routing werden die Routingtabellen automatisch gesetzt. Auf diese Weise reagiert das Netz selbstΣndig auf AusfΣlle aller Art, indem es sich von selbst Umleitungen in die Routingtabellen eintrΣgt, und der ohnehin geplagte Netzadministrator nicht mehr durch die Keller kriechen muss, um jeden Rechner bei einer ─nderung im Netz umzukonfigurieren.

Das Bekannteste seiner Art ist RIP, das Routing Information Protocol. Es arbeitet nach dem Prinzip, dass ein Router in regelmΣssigen AbstΣnden seinem Nachbar-Router seine Routingtabelle ⁿbermittelt. Gut fⁿr kleine Netze - schlecht fⁿr gro▀e. Schnell wird viel Traffic verursacht, da stΣndig Routingtabellen ⁿbermittelt werden mⁿssen. Alternativen sind OSPF (Open Shortest Path First), welches nur an bekannte Router Routingtabellen ⁿbertrΣgt - nicht an alle. Auf diese Weise bilden sich innerhalb des Rechners regelrechte Karten von dem Netz in seiner Umgebung, woraus er die beste Route fⁿr ein Paket errechnet. Der Informationsaustausch geschieht ⁿber das Hello-Protokoll.

OSPF bietet aber noch weitere M÷glichkeiten. So k÷nnen mehrere Leitungen, die alle zu einem Ziel fⁿhren, zu einer gro▀en Leitung zusammengefasst werden. Sie bilden sogenannte Autonome Systeme (Systeme, die fⁿr sich ein eigenes Netz bilden, mit mehreren Verbindungen zu anderen Netzen). Weitere Protokolle, die sich am "gro▀en Routen" beteiligen, sind das EGP (Extended Gateway Protocol) und das BGP (Border Gateway Protocol), die allerdings fⁿr richtig gro▀e Netze gedacht sind - und dementsprechend selten genutzt werden.